#ifndef PART_ANALYSIS_H_H
#define PART_ANALYSIS_H_H

#include "common.h"
#include "basic_op.h"
#include "get_shiftnum.h"
#include "part_analysis.h"
#include "error_insert_help.h"

typedef struct pos_value  
{
	word possible[ARRAY_MAX*4] ;
	int count[ARRAY_MAX*4] ;
	int size ;
}possible_value ;

void display_possible_value( possible_value* list ) ;
int add_possible_value( possible_value* list , word x ) ;

word size_value( word x , int n , int size ) ;
word get_value( int size ) ;
int compare_bit( word bit1[] ,  int n , word bit2[] )  ;
void get_size_dif( int low , int& high , word x , word y , word& dif ) ;
void hex_to_bit( word x , int size , word* a ) ;
void caculate_sub_part( word value_of_size , word xor_four , int shift , int size , word& result ) ;
word get_error_value( word x , word error , int size ) ;
void compare_dif( possible_value* possible_value_list , word x , error_struct* error_value ) ;

#endif